Import('RTT_ROOT')
Import('rtconfig')
from building import *

cwd = GetCurrentDir()

# add the general drivers.
src = Split("""
""")

# add pin drivers.
if GetDepend('RT_USING_PIN'):
    src += ['drv_gpio.c']
    
# add flash drivers.
if GetDepend('RT_USING_FAL'):
    src += ['drv_flash_gd32f4.c']

# add usart drivers.
if GetDepend(['RT_USING_SERIAL']):
    src += ['drv_usart.c']

# add i2c soft drivers.
if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
    if GetDepend('BSP_USING_I2C0_SOFT') or GetDepend('BSP_USING_I2C1_SOFT') or GetDepend('BSP_USING_I2C2_SOFT') or GetDepend('BSP_USING_I2C3_SOFT'):
        src += ['drv_soft_i2c.c']
        
# add i2c hw drivers.
if GetDepend(['RT_USING_I2C']):
    if GetDepend('BSP_USING_I2C0') or GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2'):
        src += ['drv_hw_i2c.c']

# add spi drivers.
if GetDepend('RT_USING_SPI'):
    src += ['drv_spi.c']

# add spi flash drivers.
if GetDepend('RT_USING_SFUD'):
    src += ['drv_spi_flash.c', 'drv_spi.c']

# add wdt drivers.
if GetDepend('RT_USING_WDT'):
    src += ['drv_wdt.c']

# add rtc drivers.
if GetDepend('RT_USING_RTC'):
    src += ['drv_rtc.c']

# add timer drivers.
if GetDepend('RT_USING_HWTIMER'):
    src += ['drv_hwtimer.c']

# add adc drivers.
if GetDepend('RT_USING_ADC'):
    src += ['drv_adc.c']
    
# add dac drivers.
if GetDepend('RT_USING_DAC'):
    src += ['drv_dac.c']
    
# add sdio drivers.
if GetDepend('RT_USING_SDIO'):
    src += ['drv_sdio.c']

if GetDepend('BSP_USING_SDRAM'):
    src += ['drv_exmc_sdram.c']
    
if GetDepend('BSP_USING_I2C_EEPROM'):
    src += ['drv_eeprom.c']
    
if GetDepend('BSP_USING_SHT20'):
    src += ['drv_sht20.c']
    
if GetDepend('BSP_USING_PWM'):
    src += ['drv_pwm.c']
    
if GetDepend('BSP_USING_PULSE_ENCODER'):
    src += ['drv_pulse_encoder.c']
    
if GetDepend('BSP_USING_NAND_FLASH'):
    src += ['drv_nand_flash.c']
    
if GetDepend('BSP_USING_ETH'):
    src += ['drv_eth.c']

if GetDepend('BSP_USING_AUDIO'):
    src += ['drv_wm8978.c']
    
if GetDepend('BSP_USING_AUDIO_RECORD'):
    src += ['drv_mic.c']
   
if GetDepend('BSP_USING_AUDIO_PLAY'):
    src += ['drv_sound.c']
    
if GetDepend(['BSP_USING_USBD']):
    src += ['drv_usbd.c']

if GetDepend(['BSP_USING_USBH']):
    src += ['drv_usbh.c']
    
if GetDepend(['BSP_USING_CAN']):
    src += ['drv_can.c']

src += ['drv_common.c']
path = [cwd]

group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)

Return('group')
